// 生产环境的webpack配置文件
const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const CopyWebpackPlugin = require('copy-webpack-plugin');
module.exports = {
	mode: 'production',
	entry: path.resolve(process.cwd(), './src/index.js'), // 入口文件
	output: {
		path: path.resolve(process.cwd(), './dist'),
		filename: '[name].js',
		publicPath: '/',
	},
	resolve: {
		alias: {
			// @ 符号  等同于 path.resolve(process.cwd(), "src/views")
			'@': path.resolve(process.cwd(), 'src/views'),
		},
	},
	module: {
		rules: [
			{
				test: /\.html$/i,
				loader: 'html-loader',
			},
			{
				test: /\.ejs$/,
				loader: 'ejs-loader',
				options: {
					variable: 'data', // 可以在模块当中使用data进行数据处理
				},
			},
		],
	},
	plugins: [
		new HtmlWebpackPlugin({
			title: 'admin',
			filename: 'index.html',
			template: './public/index.html',
		}),
		new CopyWebpackPlugin({
			patterns: [
				{
					from: 'public',
					to: './',
					globOptions: {
						ignore: ['**/index.html'], // 排除index.html
					},
				},
				{
					from: './src/static',
					to: './',
				},
			],
		}),
	],
};
